<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>

</body>

</html>
<script>
    //一.编写函数norepeat(arr) 将数组的重复元素去掉，并返回新的数组。
    //1.标记法 - for循环的嵌套
    //2.splice - for循环的嵌套
    // var arr = [12, 5, 6, 100, 12, 5, 6, 6, 6, 100];
    // console.log([...new Set(arr)]);

    //3.去重+排序
    // var arr = [12, 5, 6, 100, 12, 5, 6, 6, 6, 100];
    // //排序数组。
    // arr = arr.sort(function(a, b) { //[5, 5, 6, 6, 6, 6, 12, 12, 100, 100]
    //     return a - b;
    // });
    // var newarr = [arr[0]]; //将数组的第一项添加到新数组中。 5

    // //比较后一位和前一位是否相等。不相等才追加到新数组。
    // for (var i = 1; i < arr.length; i++) { //[5,5, 6, 6, 6, 6, 12, 12, 100, 100]
    //     if (arr[i] !== arr[i - 1]) { //如果数组的第二位不等于第一位，将第二位push到新数组，以此类推
    //         newarr.push(arr[i]);
    //     }
    // }
    // console.log(arr); //原数组
    // console.log(newarr); //新的数组

    //4.去重+对象
    // var arr = [12, 5, 6, 100, 12, 5, 6, 6, 6, 100];
    // var obj = {
    //     12: 1,
    //     5: 1
    // }
    // console.log(obj[12]);
    // console.log(obj[10000]);//undefined 属性不存在输出undefined.

    // ------------------------------------------------------------------
    var arr = [12, 12, 5, 5, 6, 100, 12, 5, 6, 6, 6, 100];
    var obj = {}; //准备空对象。
    var newarr = []; //新数组
    for (var i = 0; i < arr.length; i++) {
        //数组的每一个值给对象当做属性名。
        // obj[arr[i]]//obj[12]  obj[5]  obj[6]
        if (!obj[arr[i]]) { //obj[arr[i]]的结果为undefined时候，if语句有效，取反了。
            //只有当前数组项的值第一次出现，才满足if条件，如果说是第二次出现，已经给属性进行赋值了
            obj[arr[i]] = 100; //随意赋值，保证结果不是undefined即可。
            newarr.push(arr[i]);
        }
    }
    console.log(newarr); // [12, 5, 6, 100]



    // var obj = {}
    // console.log(obj[1]); //undefined
    // obj[1] = 100;
    // obj[1] = 200;
    // console.log(obj[1]); //200
</script>